﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Quanlynhasach.hethongxuly;
using Quanlynhasach.hethongluutru;

namespace Quanlynhasach
{
    public partial class frm_DanhMucSach : Form
    {
        public frm_DanhMucSach()
        {
            InitializeComponent();
        }

        private void HienThiDanhSachSach()
        {
            dgvSach.DataSource = SachDAO.LayDanhSachSach();
            

        }
     

        private void frm_DanhMucSach_Load(object sender, EventArgs e)
        {
               
          
            HienThiDanhSachSach();
            String tl, tg;
            int n = dgvSach.RowCount;
            for (int i = 0; i < n; i++)
            {
                tg = dgvSach.Rows[i].Cells[3].Value.ToString();
                String tentg = TacGiaDAO.LayTenTacGia(tg);
                dgvSach.Rows[i].Cells[3].Value = tentg;

                tl = dgvSach.Rows[i].Cells[2].Value.ToString();
                String tentl = TheLoaiDAO.LayTenTheLoai(tl);
                dgvSach.Rows[i].Cells[2].Value = tentl;
            }
            // load du lieu cho combobox cbTheLoai 
            cbTheLoai.DataSource = TheLoaiDAO.LayDanhSachTheLoai();
            cbTheLoai.DisplayMember = "TenTheLoai";
            cbTheLoai.ValueMember = "MaTheLoai";

            // load du lieu cho combobox cbTacGia 
            cbTacGia.DataSource = TacGiaDAO.LayDanhSachTacGia();
            cbTacGia.DisplayMember = "TenTacGia";
            cbTacGia.ValueMember = "MaTacGia"; 
        }

        private void btnThoat_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnThem_Click_1(object sender, EventArgs e)
        {
            SachDTO sDTO = new SachDTO();
            sDTO.TenSach = txtTenSach.Text;
            sDTO.MaTheLoai = Convert.ToInt32(cbTheLoai.SelectedValue.ToString());
            sDTO.MaTacGia = Convert.ToInt32(cbTacGia.SelectedValue.ToString());
            sDTO.GiaBan = Convert.ToInt32(txtGiaBan.Text);
            try
            {
                sDTO.SoLuongTon = Convert.ToInt32(txtSoLuongTon.Text);

            }
            catch (FormatException)
            {
                MessageBox.Show("Số lượng tồn không được để trống và điền vào số");
                return;
            }


            SachDAO sDAO = new SachDAO();
            sDAO.ThemSach(sDTO);
            MessageBox.Show("Thêm sách mới thành công", "Quản lý nhà sách");

            HienThiDanhSachSach(); 
        }

        private void btnXoa_Click_1(object sender, EventArgs e)
        {
            int maSach = Convert.ToInt32(dgvSach.SelectedRows[0].Cells[0].Value);
            SachDTO sDTO = new SachDTO();
            SachDAO sDAO = new SachDAO();
            sDTO.MaSach = maSach;

            sDAO.XoaSach(sDTO);
            MessageBox.Show("Xóa sách thành công", "Quản lý nhà sách");
            HienThiDanhSachSach();
        }

        private void btnSua_Click_1(object sender, EventArgs e)
        {
            int maSach = Convert.ToInt32(dgvSach.SelectedRows[0].Cells[0].Value);
            SachDTO sDTO = new SachDTO();
            SachDAO sDAO = new SachDAO();
            sDTO.MaSach = maSach;
            sDTO.TenSach = txtTenSach.Text;
            sDTO.MaTheLoai = Convert.ToInt32(cbTheLoai.SelectedValue.ToString());
            sDTO.MaTacGia = Convert.ToInt32(cbTacGia.SelectedValue.ToString());
            sDTO.GiaBan = Convert.ToInt32(txtGiaBan.Text);
            try
            {
                sDTO.SoLuongTon = Convert.ToInt32(txtSoLuongTon.Text);

            }
            catch (FormatException)
            {
                MessageBox.Show("Số lượng tồn không được để trống và điền vào số");
                return;
            }

            sDAO.SuaSach(sDTO);
            MessageBox.Show("Sửa Thông tin sách thành công", "Quản lý nhà sách");
            HienThiDanhSachSach();
        }

        private void dgvSach_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvSach.SelectedRows.Count > 0)
            {
                DataGridViewRow row = new DataGridViewRow();
                row = dgvSach.Rows[e.RowIndex];
                txtMaSach.Text = row.Cells[0].Value.ToString();
                txtTenSach.Text = row.Cells[1].Value.ToString();
                txtGiaBan.Text = row.Cells[4].Value.ToString();
                txtSoLuongTon.Text = row.Cells[5].Value.ToString();
            }
        }

        private void btnChon_Click(object sender, EventArgs e)
        {
            frm_PhieuBanSach.GiaBan = txtGiaBan.Text;
            frm_PhieuBanSach.MaSach = txtMaSach.Text;
            frm_PhieuNhapSach.MaSach = txtMaSach.Text;
            this.Close();
        }
    }
}
